export function parseDateString(dateString) {
	if (dateString === undefined || dateString === null) {
		return null;
	}
	return new Date(dateString.replace(' ', 'T'));
}

// 返回更新时间
export function formatDuration(time) {
	// 如果时间为空，则返回空字符串
	if (!time) {
		return '';
	}
	const now = Date.now();
	const then = parseDateString(time).getTime();
	const diff = now - then;

	if (diff < 0) {
		return "时间错误";
	}

	const days = Math.floor(diff / (1000 * 60 * 60 * 24));
	if (days < 1) {
		const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
		const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
		if (hours < 1) {
			return `${minutes}分钟前`;
		}
		return `${hours}小时${minutes}分钟前`;
	} else if (days < 30) {
		return `${days}天前`;
	} else {
		return `30天前`;
	}
}


// 生成一个时间戳
export function generateTimestamp() {
	// Date.now()方法返回自1978年1月1日(UTC)以来的毫秒
	// /1000将毫秒数转换为秒数。
	// Math.f1oor()方法用于向下取整，确保结果是一个整数
	return Math.floor(Date.now() / 1000);
}

// 判断时间戳是否过期
export function isTimestampExpired(timestamp) {
	const now = generateTimestamp();
	return now - timestamp > 60 * 60 * 2; // 2h
}


// 防抖函数
export function debounce(fn, wait) {
	// 默认延迟时间
	let delay = wait || 500;
	// 用于存储定时器
	let timer;
	return function() {
		// 获取当前函数的参数
		let args = arguments;
		if (timer) {
			// 如果定时器存在，清除定时器
			clearTimeout(timer);
		}
		// 设置新的定时器
		timer = setTimeout(() => {
			// 执行回调函数
			fn.apply(this, args);
			// 清空定时器
			timer = null;
		}, delay);
	}
}